public class ReverseList {
    private static class ListNode {
        int val;
        ListNode next;

        ListNode() {
        }

        ListNode(int val) {
            this.val = val;
        }

        ListNode(int val, ListNode next) {
            this.val = val;
            this.next = next;
        }


        class Solution {
            public ListNode reverseList(ListNode head) {
                if (head == null) return null;
                ListNode pre = null;
                ListNode cur = head;
                while (cur != null) {
                    ListNode next = cur.next;
                    cur.next = pre;
                    pre = cur;
                    cur = next;
                }
                return pre;

            }
        }
    }
}
